package com.google.gwt.maps.v3.client.streetview;

import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.maps.v3.client.base.HasSize;
import com.google.gwt.maps.v3.client.base.Size;
import com.google.gwt.maps.v3.client.streetview.impl.StreetViewTileDataImpl;

public class StreetViewTileData implements HasStreetViewTileData {

  private JavaScriptObject jso;
  
  public static final StreetViewTileDataImpl impl = StreetViewTileDataImpl.impl;
  
  public StreetViewTileData(JavaScriptObject jso) {
    this.jso = jso;
  }

  @Override
  public String getOriginHeading() {
    return impl.getOriginHeading(jso);
  }

  @Override
  public HasSize getTileSize() {
    return new Size(impl.getTileSize(jso));
  }

  @Override
  public String getTileUrl(String pano, int tileZoom, double tileX, double tileY) {
    return impl.getTileUrl(jso, pano, tileZoom, tileX, tileY);
  }

  @Override
  public HasSize getWorldSize() {
    return new Size(impl.getWorldSize(jso));
  }

  @Override
  public void setOriginHeading(String originHeading) {
    impl.setOriginHeading(jso, originHeading);
  }

  @Override
  public void setTileSize(HasSize tileSize) {
    impl.setTileSize(jso, tileSize.getJso());
  }

  @Override
  public void setWorldSize(HasSize worldSize) {
    impl.setWorldSize(jso, worldSize.getJso());
  }

  @Override
  public JavaScriptObject getJso() {
    return null;
  }
  
}
